#pragma once

#include <vector>
#include "Point2D.h"
#include "Color.h"
#include "Coordinates.h"
#include "Polygon.h"
#include <unordered_set>
#include "Plotter.h"
namespace HW2
{

	struct ImageBitmap : public Plotter
	{
		double z;
		std::vector<Point2D> points; // extremities
		std::vector<Point2D> pixels;
		Point2D minPoint, maxPoint;
		Polygon *p;
		ImageBitmap();
		
		// compare by z furter from the screen -> better.
		void set(Point2D &p);
		bool operator<(ImageBitmap& I);
		bool inside(Point2D point);
		void draw();
		void drawFill(); // (assume polygon)
		virtual void plot(int x, int y, double z = 0, Color c = Color(), Coordinates orig = Coordinates());
		
	};

}